using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Xml;

namespace ns17
{
	internal class Class93 : Interface10
	{
		private readonly XmlNode xmlNode_0;

		public object Object_0 => xmlNode_0;

		public XmlNodeType XmlNodeType_0 => xmlNode_0.NodeType;

		public string String_0 => xmlNode_0.LocalName;

		public IList<Interface10> Prop_0 => (from XmlNode xmlNode_1 in xmlNode_0.ChildNodes
			select method_0(xmlNode_1)).ToList();

		public IList<Interface10> Prop_1
		{
			get
			{
				if (xmlNode_0.Attributes == null)
				{
					return null;
				}
				return (from XmlAttribute xmlAttribute_0 in xmlNode_0.Attributes
					select method_0(xmlAttribute_0)).ToList();
			}
		}

		public Interface10 Interface10_0
		{
			get
			{
				XmlNode xmlNode = ((xmlNode_0 is XmlAttribute) ? ((XmlAttribute)xmlNode_0).OwnerElement : xmlNode_0.ParentNode);
				if (xmlNode == null)
				{
					return null;
				}
				return method_0(xmlNode);
			}
		}

		public string String_1
		{
			get
			{
				return xmlNode_0.Value;
			}
			set
			{
				xmlNode_0.Value = value;
			}
		}

		public string String_2 => xmlNode_0.NamespaceURI;

		public Class93(XmlNode node)
		{
			xmlNode_0 = node;
		}

		private Interface10 method_0(XmlNode xmlNode_1)
		{
			return xmlNode_1.NodeType switch
			{
				XmlNodeType.XmlDeclaration => new Class96((XmlDeclaration)xmlNode_1), 
				XmlNodeType.Element => new Class95((XmlElement)xmlNode_1), 
				_ => new Class93(xmlNode_1), 
			};
		}

		public Interface10 imethod_0(Interface10 interface10_0)
		{
			Class93 @class = (Class93)interface10_0;
			xmlNode_0.AppendChild(@class.xmlNode_0);
			return interface10_0;
		}

		[CompilerGenerated]
		private Interface10 method_1(XmlNode xmlNode_1)
		{
			return method_0(xmlNode_1);
		}

		[CompilerGenerated]
		private Interface10 method_2(XmlAttribute xmlAttribute_0)
		{
			return method_0(xmlAttribute_0);
		}
	}
}
